package cn.lxh.system.mapper;


import cn.lxh.system.domain.Logininfo;
import cn.lxh.system.domain.Menu;
import cn.lxh.system.dto.LoginDto;
import cn.lxh.system.query.LogininfoQuery;

import java.util.List;

/**
 * LogininfoMapper是LoginInfo类的持久层
 */
public interface LogininfoMapper {

    /**
     * 添加登录信息
     * @param logininfo
     */
    void add(Logininfo logininfo);

    /**
     * 根据id删除登录信息
     * @param id
     */
    void delete(Long id);

    /**
     * 修改登录信息
     * @param logininfo
     */
    void update(Logininfo logininfo);

    /**
     * 根据查询单个登录信息
     * @param id
     * @return
     */
    Logininfo findOne(Long id);

    /**
     * 查询所有登录信息
     * @return
     */
    List<Logininfo> findAll();

    /**
     * 根据id批量删除登录信息
     * @param ids
     */
    void patchDelete(Long[] ids);

    /**
     * 分页查询
     * @param logininfoQuery
     * @return
     */
    List<Logininfo> queryPage(LogininfoQuery logininfoQuery);

    /**
     * 根据账号和类型查询登录信息
     * @param loginDto
     * @return
     */
    Logininfo findByAccount(LoginDto loginDto);

    /**
     * 查询当前登录员工的所有权限
     * @param id
     * @return
     */
    List<String> findPermissionsById(Long id);

    /**
     * 查询当前登录员工的所有菜单
     * @param id
     * @return
     */
    List<Menu> findMenusById(Long id);
}
